大家好!
今天要來介紹 Laravel Validation~
Laravel 提供了多種驗證規則,
讓我們可以輕鬆的實作表單驗證功能。
表示該欄位為必填。
另外只要滿足以下四種條件之一,
即視為 Null 喔。
其中 required 還有多種變化用法,
以下會將互為反義的放一起做個簡單介紹。
表示該欄位可為空。
在 app/Http/Kernel.php
中有兩個 global middleware 會將空字串一步步轉化成 Null。
該 Middleware 會清除字串頭尾的空白字符。
假如有長度8的空字串經過這個 Middleware,
就會被轉換成長度0的空字串。
該 Middleware 會將長度為0的空字串轉換成 Null。
經過上面兩個 Middleware 的轉換後,
再長的空字串都會被轉化成 Null
所以如果不想讓一些欄位因為 Value 是 Null 而被阻擋的話,
記得加上 nullable 喔。
表單內需有該欄位,
但可接受 Value 為 Null。
該用法我們在第二天實作會員註冊時有用到,
unique 會幫我們驗證表單欄位內的 Value 在指定的資料表欄位中是否為唯一值。
$request->validate([
'email' => 'required|email|unique:users,email',
]);
使用 exists 驗證欄位內的 Value 必須存在於指定的資料表欄位中。
下面的例子為驗證表單欄位中的 postId 必須存在 posts 資料表中。
$request->validate([
'postId' => 'required|integer|exists:posts,id',
]);
$request->validate([
'email' => ['required', 'regex:/^.+@.+$/i'],
]);
如果想在 Validation 中使用 regex,
請盡量使用陣列指定驗證規則,
特別是在正則內有 |
的時候。
今天就先這樣啦,
認識了一些驗證規則~
明天來認識如何將相同的表單驗證重複使用吧!
大家明天見啦~
若文章有任何問題,
還請大家不吝賜教!